Kevin Mader
20 March 2014
ETHZ: 227-0966-00L
How can we extract topology of a structure?
How can we measure sizes in complicated objects?
How do we measure sizes relavant for diffusion or other local processes?
How do we identify seperate objects when they are connected?
How do we investigate surfaces in more detail and their shape?
How can we compare shape of complex objects when they grow?
To simplify our data, but an ellipse model is too simple for many shapes
So while bounding box and ellipse-based models are useful for many object and cells, they do a very poor job with the sample below.
The distance map is an image where each voxel contains a value. For each image there are two possible distance maps.
One of the most useful components of the distance map is that it is relatively insensitive to small changes in connectivity.
For some structures like cellular materials and trabecular bone, we want a more detailed analysis than just thickness. We want to know
The first step is to take the distance transform the structure \[ I_d(x,y) = \textrm{dist}(I(x,y)) \] We can see in this image there are already local maxima that form a sort of backbone which closely maps to what we are interested in.
By using the laplacian filter as an approximate for the derivative operator which finds the values which high local gradients.
\[ \nabla I_{d}(x,y) = (\frac{\delta^2}{\delta x^2}+\frac{\delta^2}{\delta y^2})I_d \approx \underbrace{\begin{bmatrix} -1 & -1 & -1 \\ -1 & 8 & -1 \\ -1 & -1 & -1 \end{bmatrix}}_{\textrm{Laplacian Kernel}} \otimes I_d(x,y) \]
We can locate the local maxima of the structure by setting a minimum surface distance \[ I_d(x,y)>MIN-SLOPE \] and combining it with a minimum slope value \[ \nabla I_d(x,y) > MIN-DIST \]
Harking back to our first lectures, this can be seen as a 2D threshold of the entire dataset.
\[ \textrm{cImg}(x,y) = \langle \underbrace{I_d(x,y)}_1, \underbrace{\nabla I_d(x,y)}_2 \rangle \]
\[ \textrm{skelImage}(x,y) = \] \[ \begin{cases} 1, & \textrm{cImg}_1(x,y)\geq MIN-DIST \\ \textbf{ AND} & \textrm{cImg}_2(x,y)\geq MIN-SLOPE \\ 0, & \textrm{otherwise} \end{cases} \]
Calculating the distance map by drawing a sphere at each point is very time consuming (\( O(n^3) \)).
\[ \textrm{thSkelImage}(x,y) = \] \[ \begin{cases} \textrm{cImg}_1(x,y) , & \textrm{cImg}_1(x,y)\geq MIN-DIST \\ & \& \textrm{ cImg}_2(x,y)\geq MIN-SLOPE \\ 0, & \textrm{otherwise} \end{cases} \]
user system elapsed
5.057 0.092 5.224
user system elapsed
17.439 0.499 18.637
| id | Full Map | Skeleton Map |
|---|---|---|
| Min. | 0.75 | 1.75 |
| 1st Qu. | 2.47 | 2.47 |
| Median | 2.66 | 2.66 |
| Mean | 2.67 | 2.74 |
| 3rd Qu. | 3.01 | 3.01 |
| Max. | 3.20 | 3.20 |
user system elapsed
2.643 0.045 2.742
| id | Full Map | Skeleton Map | Tiny Skeleton Map |
|---|---|---|---|
| Min. | 0.75 | 1.75 | 2.00 |
| 1st Qu. | 2.47 | 2.47 | 2.50 |
| Median | 2.66 | 2.66 | 2.66 |
| Mean | 2.67 | 2.74 | 2.77 |
| 3rd Qu. | 3.01 | 3.01 | 3.01 |
| Max. | 3.20 | 3.20 | 3.20 |
Watershed is a method for segmenting objects without using component labeling.